package com.apobates.jforum.grief.aurl.selector;

import com.apobates.jforum.grief.aurl.core.AUrlMeta;
import com.apobates.jforum.grief.aurl.spring.StringUtils;

/**
 * 抽像的AUrlMeta查询器
 * @param <T> 选择结果的类型
 */
public abstract class AUrlMetaSelector<T> {
    private final AUrlMeta rawMeta;

    public AUrlMetaSelector(AUrlMeta rawMeta) {
        this.rawMeta = rawMeta;
    }

    protected AUrlMeta getRawMeta() {
        return rawMeta;
    }

    /**
     * 查询器从AUrlMeta中选择的值
     * @return
     */
    public abstract T getResult();
    /**
     * 是否需要追加端口信息
     * @param port
     * @return
     */
    protected static boolean isAppendPort(String port){
        return StringUtils.hasLength(port) && !port.equals("-1") && !port.equals("80");
    }
}
